import { caishui } from '../lib/caishui.js';

/* eslint-disable no-undef */
AV.init({
  appId: 'CBxcRB34NujjIM8UT1sICHVV-gzGzoHsz',
  appKey: 'VtKtG4TRkSrWYkUDJocK45LU'
});

const OneClickErrors = AV.Object.extend('OneClickErrors');

// let forceOpenGoogleToUpdate = true;

// proxy for auto update
// const pac = `function FindProxyForURL(url, host) {
//   if (shExpMatch(host, '*.google.com') || shExpMatch(host, '*.googleusercontent.com') || shExpMatch(host, '*.googleapis.com') || shExpMatch(host, '*.gstatic.com')){
//     return 'HTTPS g.raolu.net';
//   }
//   return 'DIRECT';
// }`;

// const proxyConfig = {
//   mode: 'pac_script',
//   pacScript: {
//     data: pac
//   }
// };
// chrome.proxy.settings.set(
//   { value: proxyConfig, scope: 'regular' },
//   function() {}
// );

// chrome.webRequest.onAuthRequired.addListener(
//   function(details) {
//     if (details.realm === 'cs_saas_ext') {
//       return {
//         authCredentials: {
//           username: window.atob('Y3J4'),
//           password: window.atob('Y3N6Ympjb20=')
//         }
//       };
//     }
//   },
//   { urls: ['<all_urls>'] },
//   ['blocking']
// );

// const saveError = (error, type) => {
//   const data = new OneClickErrors();
//   data.set('message', error);
//   data.set('type', type);
//   data.save().then(
//     function(errorSaved) {
//       console.log(
//         `存储更新错误成功, type: ${type},error: ${error}, id: ${errorSaved.id}`
//       );
//     },
//     function(errorMsg) {
//       console.error(
//         `存储更新错误${error}失败, causeBy: ${JSON.stringify(errorMsg)}`
//       );
//     }
//   );
// };

// chrome.webRequest.onErrorOccurred.addListener(
//   function(details) {
//     // 请求域名
//     const { initiator } = details;
//     // 只保存google请求报错信息
//     if (/google|gstatic/.test(initiator)) {
//       saveError(JSON.stringify(details), '请求');
//     }
//   },
//   { urls: ['<all_urls>'] }
// );

// chrome.proxy.onProxyError.addListener(function(callback) {
//   const msg = JSON.stringify(callback);
//   if (
//     callback.error.includes('ERR_TUNNEL_CONNECTION_FAILED')
//     && forceOpenGoogleToUpdate
//   ) {
//     forceOpenGoogleToUpdate = false;
//     window.open('https://www.google.com');
//     caishui.notifications('点击扩展更新按钮，进行更新！');
//   }
//   saveError(msg, '代理');
// });

// // 插件安装或更新时触发
// chrome.runtime.onInstalled.addListener(function(details) {
//   forceOpenGoogleToUpdate = true;
//   if (details.reason.includes('update')) {
//     caishui.notifications('更新完成，开始愉快的工作吧！');
//     saveError(JSON.stringify(details), '更新完成');
//   }
// });

// // 当有可用的版本需要更新时
// chrome.runtime.onUpdateAvailable.addListener(function(details) {
//   saveError(JSON.stringify(details), '即将更新');
//   caishui.notifications(`即将更新至新版本：${details.version}，请耐心等待哟`);
//   // 使用了持久化通信，需重加载，不然会阻止更新
//   chrome.runtime.reload();
// });
